<?php

class Sedes_IndexController extends Zend_Controller_Action {
	private $nav;
	
     public function init() {
		$this->nav = new App_Util_Navegacion();
		$this->nav->agregar_navegacion ( "Listado de sedes", "/sedes/index", "Listado de sedes" );
		
	}
	
    public function indexAction() {
        $this->view->nav = $this->nav;
        $sedes = new Sedes_Model_Sedes();
        $this->view->datos = $sedes->getSedes();
    }

    public function crearAction() {
        $sedes = new Sedes_Model_Sedes();
        
        $datos = array();
        
        $accion = "Crear ";
        $codsede = $this->_getParam("codsede");
        if (!empty($codsede)){
            $datos= $sedes->getSede($codsede);
            $datos["ubicacion"] = "";
            if (!empty($datos["codubicacion"])){
    			$ubicacion= new Generales_Model_Ubicaciongeografica();
    			$datosubicacion= $ubicacion->cargarDatos($datos["codubicacion"]);
    			$datos["ubicacion"] = $datosubicacion["nombreubicacion"];
            }
            $accion = "Modificar ";
        }
        
        $this->nav->agregar_navegacion("{$accion} Sede", "","{$accion} Sede");
		$this->view->nav = $this->nav;

        $form = new Sedes_Form_Sede();
		$form->populate($datos);
        $form->setAction($this->view->baseUrl("/sedes/index/guardarsede"));
        $form->recoverFromRedirect();
		$this->view->form = $form;
    }
    
	
    public function guardarsedeAction(){
         $form = new Sedes_Form_Sede();
        if($this->getRequest()->isPost() && $form->isValid($this->getRequest()->getPost())){
			try {
				$sedes = new Sedes_Model_Sedes();
				$datos = $this->getRequest()->getPost();
				$key = $sedes->guardarSede($datos);
				if (empty($datos["codsede"])){
				    $datos["codsede"] = $key;
				}
				
				$this->view->priorityMessenger("Los datos se han guardado correctamente", "success");
			} catch (Exception $e) {
				$this->view->priorityMessenger($e->getMessage(), "error");
			}
        } else {
            $form->setStateRedirect();
        }
        $cadena = "";
        
        if (!empty($datos["codsede"])){
            $parametros["codsede"] = $datos["codsede"];
            $cadena =App_Util_SafeUrl::encriptar($parametros, false);
            $this->_helper->redirector( "crear","index","sedes",$cadena);
        }
         $this->_helper->redirector( "crear","index","sedes");
	}
	
   public function eliminarsedeAction() {
        try {
            $sedes = new Sedes_Model_Sedes();
            $sedes->eliminarSede($this->_getParam("codsede"));
            $this->view->priorityMessenger("El registro se eliminó correctamente", "success");
        } catch(Exception $e) {
            $this->view->priorityMessenger($e->getMessage(), "error");
        }
        $this->_helper->redirector("index");
    }
		
    

    public function usuariossedeAction() {
        $sedes = new Sedes_Model_Sedes();
        
        $this->nav->agregar_navegacion("Asignar usuarios a Sede", "","Asignar usuarios a Sede");
		$this->view->nav = $this->nav;
        
        $datos["codsede"] = $this->_getParam("codsede");
        $datos["tipousuario"] = "R";
        
        $this->view->datossede = $sedes->getSede($this->_getParam("codsede"));
        
        $form = new Sedes_Form_AsignarUsuario();
		$form->populate($datos);
        $form->setAction($this->view->baseUrl("/sedes/index/guardarasignacion"));
        $form->recoverFromRedirect();
		$this->view->form = $form;
		
		$usuarios = new Usuarios_Model_Usuarios();
		$this->view->datos = $usuarios->getUsuarios("SEDES",array("codsede"=>$datos["codsede"]));
    }

	public function autolistaAction(){
		$this->_helper->layout->disableLayout ();
	    $campoConsulta = strtolower($this->_getParam ( 'term' ));
		$items=array();
		if ($campoConsulta){
			$usuarios = new Usuarios_Model_Usuarios();
			$items= $usuarios->cargardatosauto("SEDES",$campoConsulta);
		}
		$this->view->items=$items;
	}
       
    public function guardarasignacionAction(){
        $form = new Sedes_Form_AsignarUsuario();
        if($this->getRequest()->isPost() && $form->isValid($this->getRequest()->getPost())){
			try {
				$usuarios = new Usuarios_Model_Usuarios ();
				$datos = $this->getRequest()->getPost();
				unset($datos["usuario"]);
				unset($datos["btnSubmit"]);
				$usuarios->asignarUsuarioSEDE($datos);
				$this->view->priorityMessenger("Los datos se han guardado correctamente", "success");
			} catch (Exception $e) {
				$this->view->priorityMessenger($e->getMessage(), "error");
			}
        } else {
            $form->setStateRedirect();
        }
        $parametros["codsede"] = $datos["codsede"];
        $this->_helper->redirector( "usuariossede","index","sedes",App_Util_SafeUrl::encriptar($parametros, false));
	}
    
	public function desasignarusuarioAction(){
	    $codsede = $this->getRequest ()->getPost ( 'codsede' );
        $seleccionados = $this->_getParam("seleccionados", array());

        if(count($seleccionados)==0) {
			$this->view->priorityMessenger("Debe seleccionar por lo menos un registro", "warning");
			$this->_helper->redirector( "usuariossede","index","sedes",App_Util_SafeUrl::encriptar(array("codsede"=>$codsede),false));
		}
		try {
		    $usuarios = new Usuarios_Model_Usuarios ();
			$usuarios->desasignarUsuarioSEDE($seleccionados);
			$this->view->priorityMessenger("Los datos se han guardado correctamente", "success");
		} catch (Exception $e) {
			$this->view->priorityMessenger($e->getMessage(), "error");
		}
		$this->_helper->redirector( "usuariossede","index","sedes",App_Util_SafeUrl::encriptar(array("codsede"=>$codsede),false));
	}
	
	public function autolistasedesAction(){
		$this->_helper->layout->disableLayout ();
		 $campoConsulta = strtolower($this->_getParam ( 'term' ));
		$items=array();
		if ($campoConsulta){
			$sedes= new Sedes_Model_Sedes();
			$items= $sedes->cargardatosauto($campoConsulta);
		}
		$this->view->items=$items;
	}
		
}